Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Ağ Ayarları
Description: Evarobot ile bağlantı için yapılması gereken ağ ayarları.Tutorial Level: BEGINNER
Ağ Ortamı
Ağ ayarları, bilgisayar ve Evarobot için olmak üzere iki kategori altında toplanmıştır.
Bilgisayar için Ağ Ayarları
Evarobot'a üzerinde bulunan modem sayesinde kablosuz olarak bağlanmak mümkündür. Takip eden bölümde bağlanmak istediğiniz PC'nin ağ ayarlarını yapmak için yapmanız gerekenler anlatılacaktır. Anlatım sırasında kullanılacak PC üzerinde Ubuntu 14.04 işletim sistemi çalışmaktadır ve ROS versiyonu olarak Indigo kullanılmaktadır.
Evarobot'a kablosuz olarak bağlanmak için SSH kullanılacaktır. Bilgisayarınıza kurmak için terminalde aşağıdaki kodu çalıştırmalısınız.
> sudo apt-get install ssh ssh-contact-service ssh-contact-client
Ağ ayarlarını yaparken bilgisayarınızın adını bilmek gerekmektedir. Aşağıdaki kodu terminalde çalıştırdığınızda bilgisayarınızın adını öğrenebilirsiniz.
> hostname
Resimde de gördüğünüz gibi örneğimizde kullanacağımız bilgisayarın hostname'i evarobotserver. Uygulamada <hostname> yazan yere biz evarobotserver yazacağız. Sizde kendi hostname'inizi yazmanız gerekmektedir.
bashrc isimli dosyanın içerisinde ROS_HOSNAME ve ROS_MASTER_URI değişkenlerini tanımlamamız gerekmedir. Bunun için gedit editörü ile ilgili dosyayı açıyoruz.
> gedit ~/.bashrc
Açılan editörde en alltaki satıra kendi hostname'inizi yazmalı ve kaydederek editörü kapatmalısınız.
export ROS_HOSTNAME=<hostname> export ROS_MASTER_URI=http://<hostname>:11311
Uygulamada kullanıdığımız bilgisayar için aşağıdaki gibi ekleme yapıyoruz.
export ROS_HOSTNAME=evarobotserver export ROS_MASTER_URI=http://evarobotserver:11311
bashrc içerisinde herhangi bir değişiklik yapıldığında terminalde değişikliklerin uygulanması için açık terminalleri kapatıp yeniden açmalı ya da açık olan her terminalde aşağıdaki kodun çalıştırılması gerekmektedir.
> bash
ROS değişkenlerini tanımladıktan sonra, host isimlerini ip adresleri ile ilişkilendireceğiz. Bunun için aşağıdaki gibi super kullanıcı olarak 'hosts' isimli dosyayı açıyoruz.
> sudo gedit /etc/hosts
gedit editörü ile açtığımız 'hosts' dosyası içerisine Evarobot ve kendi bilgisayarımız için ip ve hostname bilgilerini giriyoruz. Burada dikkat edilmesi gereken konu, aynı ip birden fazla hostname'e atanmamalıdır.
192.168.3.70 <hostname> 192.168.3.10 evarobotDSK
Örnekte kullandığımız bilgisayar için aşağıdaki gibi ekleme yaptık. Sizde kendi bilgisayarınızın hostname'ine uygun olarak düzeltme yapmalısınız.
192.168.3.70 evarobotserver 192.168.3.10 evarobotDSK
Çoklu roscore çalıştırmak için multimaster_fkie ros paketi kullacağız. Bilgisayar Kurulumu uygulamasında bu paketin indirilmesi anlatılmaktadır. Aşağıdaki kod ile düzeltme yapacağımız launch dosyasını gedit editörü ile açıyoruz.
> roscd master_discovery_fkie/launch/ > gedit master_discovery.launch
Açılan editörde aşağıdaki bilgiyi içeren satırı,
<param name="mcast_group" value="226.0.0.0" />
aşağıdaki gibi değiştirip, kaydederek kapatıyoruz.
<param name="mcast_group" value="224.0.0.0" />
PC NTP Server Ayarları
Evarobot ile bilgisayar arasında zaman eşitlemesinin yapılması gerekmektedir. Bunun için bilgisayarı ntp server olarak ayarlayacağız. Böylece, Evarobot bilgisayara göre saatini ayarlayacaktır.
Ntp'nin indirilmesi için aşağıdaki kodu terminalde çalıştırıyoruz.
> sudo apt-get install ntp
NTP ayarlarını yapmak için 'ntp.conf' dosyası açılır.
> sudo gedit /etc/ntp.conf
Editörde 23. satıra aşağıdaki satırlar eklenir.
server 127.127.1.0 server 127.127.1.0 stratum 10
52. satıra ise aşadaki satırlara eklenir ve dosya kaydedilerek kapatılır.
broadcast evarobotDSK
Bilgisayar bir ağda client gibi çalışarak internetten saatini güncellerken, evarobot_wifi ağına girdiğinde ntp sunucu gibi çalışması için yeniden başlatmak gerekmektedir. Bu sebepten dolayı, evarobot_wifi isimli ağa her girildiğinde aşağıdaki kod terminalde çalıştırılarak ntp sunucunun yeniden başlatılması gerekmektedir.
> sudo /etc/init.d/ntp restart
NTP ağındaki bilgisayarlar hakkında bilgi almak için aşağıdaki kod kullanılabilir.
> ntpq --numeric --peers
evarobot_wifi ağı için ip ayarlarının yapılması
Bu kısımda evarobot_wifi ağından 192.168.3.70 ip'sini statik olarak almak için ayarlar yapacağız. Evarobot'a güç verdiğinizde bir kaç dakika içerisinde evarobot_wifi isimli ağı görebilirsiniz.
Modem bilgileri:
SSID: evarobot_wifi
Şifre: inomuh2015
Aşağıdaki resimlerdeki 'evarobot_wifi' isimli ağa girilir.
Ağdan şu anda dhcp tarafından otomatik bir ip atandı. Aşağıdaki resimlerdeki gibi 'Edit Connections..'a tıklandığında açılan ekran evarobot_wifi seçilerek 'Edit' butonuna basılır.
Açılan ekranda 'IPv4 Settings' sekmesi altında 'Method' Manual seçilerek resimdeki gibi adresler eklenir. Address: 192.168.3.70 Netmask: 255.255.255.0 Gateway: 192.168.3.1
Yeni girilen ayarların aktif olması için resimdeki gibi Wifi Enable ve ardından Disable edilir. Daha sonra evarobot_wifi ağına girilir.
Eğer ayarlamalar hatasız bir şekilde yapıldı ise terminalde aşağıdaki kod çalıştırıldığında resimdeki gibi bilgisayarın 192.168.3.70 no ip'yi almış olması beklenmektedir.
> ifconfig
Böylece bilgisayarınızın Evarobot ile sorunsuz haberleşebilmesi için, bilgisayar tarafında yapılması gerekli olan ayarlamaları yapmış bulunmaktasınız.
Evarobot için Ağ Ayarları
Evarobot ağ ayarlarını yapmadan önce Bilgisayar Ağ Ayarlarını yapmış olmasınız.
evarobot_wifi ağına statik ip ile bağlandıktan sonra, ssh ile Evarobot'a bağlanılır. (Şifre: 12345)
> ssh pi@evarobotDSK
Evarobot içerisindeki 'hosts' isimli dosyaya kendi bilgisayarımızın adını ve IP'sini eklemek için açıyoruz. Evarobot'a ssh ile bağlandığımız için içeride görsel bir şey çalıştırmak mümküm değildir. Bu yüzden gedit editörü yerine nano editörünü kullanıyoruz.
> sudo nano /etc/hosts
Aşağıdaki gibi eklemeye yapacağız. Hostname yerine bilgisayarımızın hostname'i yazacağız.
192.168.3.70 <hostname>
Örnek için kullandığımız bilgisayar için aşağıdaki gibi bir giriş yapıyoruz.
192.168.3.70 evarobotserver
Kaydederek çıkmak için Ctrl + X tuş kombinasyonunu kullanıyoruz. Kaydetmek isteyip istemediğimizi soracak Y tuşuna basıyoruz. Ardından dosya isminde değişiklik yapmadan Enter'a basıyoruz.
Evarobot NTP Ayarları
Evarobot'un bilgisayarınız ile zaman eşitlemesi yapması için bilgisayar tarafında yapılan ayarlara benzer bir ayarlama da Evarobot tarafında yapmak gerekmektedir.
Bunun için nano editörü ile ntp.conf dosyasını açıyoruz.
> sudo nano /etc/ntp.conf
Açılan dosyada 22. satıra aşağıdaki kodu, hostname olarak bilgisayarınızın adı gelecek şekilde düzenleme yaparak eklemeniz gerekmektedir. nano editöründe imlecin hangi satırda olduğunu öğrenmek için Ctrl+C tuş kombinasyonunu kullanabilirsiniz.
server <hostname> iburst
Örneğimiz için biz aşağıdaki kodu yapıştırdık. Sizde kendinize göre düzenlemeyi unutmayınız.
server evarobotserver iburst
Dosyanın en sonundaki iki satırın başında # işaretlerini siliniz.
#disable auth #broadcastclient
Son iki satırıda aşağıdaki formata getirdikten sonra Ctrl+X ile değişiklikleri kaydederek çıkalım.
disable auth broadcastclient
Aşağıdaki kodu teminalde çalıştırarak ntp'yi yeniden başlatmalısınız.
> sudo /etc/init.d/ntp restart
Böylece Evarobot Ağ Ayarlarını tamamlamış bulunmaktayız. Bir sonraki tutorial'a geçebilirsiniz.